草庐IT

c++ - std::unique_ptr 和指向指针的指针

全部标签

python - 如何在 Windows 上从 C 中的 CreateProcess 执行 Python 脚本?

我已经设法让C代码在C代码中使用PIPES在Unix上愉快地调用Python脚本。我现在需要在Windows上执行相同的操作。本质上,我想在Windows上用不同的脚本语言(如Python/Lua等)编写脚本,并能够使用STDIN/STDOUT等执行它们。我一直在查看“CreateProcess”调用:http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx虽然我可以让它与“用C编写的child”一起工作,但我无法让它调用Python脚本。下面是我的windows盒子上的“parent/发件人代码”:#include#in

windows - 为导致崩溃的非静态函数指针赋值 - 为什么?

我有一个定义如下的函数:typedefvoid(*logprintf_t)(constchar*format,...);logprintf_tlogprintfvoidmy_function(){logprintf=cast(logprintf_t)0x12345;}它会导致应用程序退出。但是,如果我将logprintf设为静态(我在某处看到过这个技巧),即:voidmy_function(){staticlogprint_tlogprintf=cast(logprintf_t)0x12345;}它不会崩溃。这是语言规则还是某种错误?为什么dmd不警告这个?

c - 测试文件/目录是否只读

好吧,我是一个C新手。如何在Windows上测试文件是否为只读。我试图通过GetFileAttributes函数获得一些东西,但无济于事。给定文件路径,测试文件是否为只读的正确方法是什么?编辑:所以我仍然坚持这一点。我想检查用户是否有权在C:\ProgramFiles中添加和编辑文件...但我似乎无法获得任何建议。当我使用!(GetFileAtrributes(path)&FILE_ATTRIBUTES_READONLY)时,它表示该目录不是只读的。然后我尝试编写一个文件并测试它是否有效:strcat(path,"\\testFile000");FILE*test=0;test=fop

c - 测量上下文切换时间 C (Windows)

我需要实现一种方法来测量Windows中线程间上下文切换的时间和CPU周期。这是我的代码#include#include#includeLARGE_INTEGERinitialTimeStamp,finalTimeStamp,freq;DWORDThreadProc(LPVOIDlpdwThreadParam){SwitchToThread();return0;}intmain(){intresult;HANDLEhThread;QueryPerformanceFrequency(&freq);hThread=CreateThread(NULL,0,(LPTHREAD_START_RO

c++ - 将 ListView 控件滚动到特定项目

有没有办法滚动ListView(在报告View中)以便特定项目位于顶部?我能找到的最接近的是ListView_EnsureVisible,但它只能确保项目可见-它不允许精细控制项目出现的位置。 最佳答案 ListView_EnsureVisible()滚动ListView以使项目可见,但它通常(但不总是)将项目放置在ListView的中间附近。要让item出现在顶部,先调用ListView_EnsureVisible(),再调用ListView_GetTopIndex()确定最上面可见的item,然后用ListView_GetIte

c++ - 使用指针创建对象访问冲突错误

所以我刚开始使用C++进行Windows编程。首先我画了一些线,没问题,然后我尝试创建一个类来绘制一些形状,当我使用普通方法创建对象时它工作正常(在代码中这些部分被注释掉),但是当我使用指针创建新对象时,出现了Accessviolation错误。这是我的类(class)(我删除了一些代码,因此在某些部分看起来过于简单):classshapes{public:shapes(void);voidsetstartp(POINT&p0);voidsetendp(POINT&p1);voiddraw(HDChdc);~shapes(void);POINTx0;POINTx1;};shapes::

c - 如何在 Windows 上安装 JudyArrays(C 库)

我知道这听起来可能是个很愚蠢的问题,但我在安装下载的库方面经验不足...无论如何,我从sourceforge下载了JudyArrays的源代码(对于那些不知道它的人来说,这是一个用于256-trie的C库),安装说明引用了make命令。我试着下载thisutility,但我无法让它工作。哪个是正确的目标makefile?我设法得到的是:"..path\Makefile.in":15:***missingseparator.Stop.我尝试使用谷歌搜索寻求帮助,但没有找到任何东西,要么是我使用错误的查询字符串进行搜索,要么我是整个星球上唯一无法安装它的笨蛋...有什么帮助吗?有没有更简单

c++ - 使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针?

一旦我的进程加载到内存中,我就试图获取它的图像库。据我了解,您可以调用GetModuleHandle来获取图像库。我的问题是,返回的句柄是否实质上指向IMAGE_DOS_HEADER结构,以便您可以执行以下操作:PIMAGE_DOS_HEADERDosHeader;DosHeader=(PIMAGE_DOS_HEADER)GetModuleHandle(NULL);如果这不正确,您还可以使用什么其他方法? 最佳答案 这是正确的,但如果您想要dll的模块句柄,则需要指定其路径。否则,您将获得进程exe的句柄。您还应该首先检查返回的HM

c - 为什么这个 MSVC API 是这样定义的?

errno_t_dupenv_s(char**buffer,size_t*sizeInBytes,constchar*varname);我有几个问题:为什么需要指向指针(**)的指针而不是指针(*)?为什么sizeInBytes是必需的,strlen(buffer)不可用吗? 最佳答案 msvc下任何以_s为后缀的函数都是安全函数,这意味着它不会对传递的数据的完整性做出任何假设。正是出于这个原因,字符串的长度是必需的,因为您不能假设它以null终止或根本终止(您可能也只想要一半的字符串,但这是副作用)。安全函数都返回错误代码,这样就

java - SpringSource Tool Suite windows 7 32 位安装程序指向错误的 JRE

我正在尝试在windows732位机器上安装SpringSourceToolSuite并遇到一个问题,springsource工具套件安装程序.exe文件正在寻找旧的jre而不是新的jdk,我如何让安装程序指向新的jdk而不是老jre?这是收到的错误消息:TheRegistryreferstononexistentJavaRuntimeEnvironmentinstallatioorruntimeiscorrupt.Thesystemcannotfindthepathspecified.有什么建议吗? 最佳答案 我遇到了类似的问题。